home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11inc.lha / X11 / Xm / ToggleBGP.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-13  |  5.9 KB  |  205 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC.
  3.  * ALL RIGHTS RESERVED
  4. */ 
  5. /*   $RCSfile: ToggleBGP.h,v $ $Revision: 1.13 $ $Date: 92/07/06 14:50:35 $ */
  6. /*
  7. *  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  8. /*
  9. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  10. /********************************************
  11.  *
  12.  *   No new fields need to be defined
  13.  *   for the Toggle widget class record
  14.  *
  15.  ********************************************/
  16.  
  17. #ifndef _XmToggleButtonGP_h
  18. #define _XmToggleButtonGP_h
  19.  
  20. #include <Xm/ToggleBG.h>
  21. #include <Xm/LabelGP.h>
  22.  
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26.  
  27. /*************************************************************/
  28. /* The  ToggleButton Gadget Cache Object's class and instance records*/
  29. /*************************************************************/
  30.  
  31.  
  32. typedef struct _XmToggleButtonGCacheObjClassPart
  33. {
  34.     int foo;
  35. } XmToggleButtonGCacheObjClassPart;
  36.  
  37.  
  38. typedef struct _XmToggleButtonGCacheObjClassRec 
  39. {
  40.     ObjectClassPart                     object_class;
  41.         XmExtClassPart                      ext_class;
  42.     XmLabelGCacheObjClassPart           label_class_cache;
  43.     XmToggleButtonGCacheObjClassPart    toggle_class_cache;
  44. } XmToggleButtonGCacheObjClassRec;
  45.  
  46. externalref XmToggleButtonGCacheObjClassRec xmToggleButtonGCacheObjClassRec;
  47.  
  48.  
  49. typedef struct _XmToggleButtonGCacheObjPart
  50.    unsigned char    ind_type;
  51.    Boolean        visible;
  52.    Dimension        spacing;
  53.    Dimension        indicator_dim;
  54.    Pixmap        on_pixmap; 
  55.    Pixmap        insen_pixmap; 
  56.    Boolean        ind_on;
  57.    Boolean        fill_on_select;
  58.    Pixel        select_color;
  59.    GC            select_GC;
  60.    GC            background_gc;
  61. } XmToggleButtonGCacheObjPart;
  62.  
  63. typedef struct _XmToggleButtonGCacheObjRec
  64. {
  65.     ObjectPart                              object;
  66.     XmExtPart                            ext;
  67.     XmLabelGCacheObjPart                 label_cache;
  68.     XmToggleButtonGCacheObjPart             toggle_cache;
  69. } XmToggleButtonGCacheObjRec;
  70.  
  71.  
  72. /****************************************************
  73.  *
  74.  * Full class record declaration for Toggle class
  75.  *
  76.  ****************************************************/
  77.  
  78. typedef struct _XmToggleButtonGadgetClassPart
  79.  {
  80.    XtPointer                   extension;
  81.  } XmToggleButtonGadgetClassPart;
  82.  
  83.  
  84. typedef struct _XmToggleButtonGadgetClassRec {
  85.     RectObjClassPart                 rect_class;
  86.     XmGadgetClassPart              gadget_class;
  87.     XmLabelGadgetClassPart             label_class;
  88.     XmToggleButtonGadgetClassPart    toggle_class;
  89. } XmToggleButtonGadgetClassRec;
  90.  
  91.  
  92. externalref XmToggleButtonGadgetClassRec xmToggleButtonGadgetClassRec;
  93.  
  94.  
  95. typedef struct _XmToggleButtonGadgetPart
  96.    Boolean        indicator_set;
  97.    Boolean        set;
  98.    Boolean          visual_set; /* used for visuals and does not reflect
  99.                                        the true state of the button */
  100.    Boolean             Armed;
  101.    XtCallbackList       value_changed_CB,
  102.             arm_CB,
  103.                 disarm_CB;
  104.  
  105.    XmToggleButtonGCacheObjPart  *cache; /* Replace cache instance fields */
  106.                     /* with a pointer */
  107. } XmToggleButtonGadgetPart;
  108.  
  109.  
  110.  
  111. /****************************************************************
  112.  *
  113.  * Full instance record declaration
  114.  *
  115.  ****************************************************************/
  116.  
  117. typedef struct _XmToggleButtonGadgetRec {
  118.     ObjectPart            object;
  119.     RectObjPart            rectangle;
  120.     XmGadgetPart        gadget;
  121.     XmLabelGadgetPart        label;
  122.     XmToggleButtonGadgetPart    toggle;
  123. } XmToggleButtonGadgetRec;
  124.  
  125.  
  126. /* MACROS */
  127. /**********/
  128.  
  129. /* Macros for cached instance fields */
  130.  
  131. #define TBG_IndType(w)        (((XmToggleButtonGadget) (w)) -> \
  132.                    toggle.cache->ind_type)
  133. #define TBG_Visible(w)        (((XmToggleButtonGadget) (w)) -> \
  134.                    toggle.cache->visible)
  135. #define TBG_Spacing(w)        (((XmToggleButtonGadget) (w)) -> \
  136.                    toggle.cache->spacing)
  137. #define TBG_IndicatorDim(w)    (((XmToggleButtonGadget) (w)) -> \
  138.                    toggle.cache->indicator_dim)
  139. #define TBG_OnPixmap(w)        (((XmToggleButtonGadget) (w)) -> \
  140.                    toggle.cache->on_pixmap)
  141. #define TBG_InsenPixmap(w)    (((XmToggleButtonGadget) (w)) -> \
  142.                    toggle.cache->insen_pixmap)
  143. #define TBG_IndOn(w)        (((XmToggleButtonGadget) (w)) -> \
  144.                    toggle.cache->ind_on)
  145. #define TBG_FillOnSelect(w)    (((XmToggleButtonGadget) (w)) -> \
  146.                    toggle.cache->fill_on_select)
  147. #define TBG_SelectColor(w)    (((XmToggleButtonGadget) (w)) -> \
  148.                    toggle.cache->select_color)
  149. #define TBG_SelectGC(w)        (((XmToggleButtonGadget) (w)) -> \
  150.                    toggle.cache->select_GC)
  151. #define TBG_BackgroundGC(w)    (((XmToggleButtonGadget) (w)) -> \
  152.                    toggle.cache->background_gc)
  153.  
  154. /***************************************/
  155. /* Macros for uncached instance fields */
  156.  
  157. #define TBG_IndicatorSet(w)    (((XmToggleButtonGadget) (w)) -> \
  158.                    toggle.indicator_set)
  159. #define TBG_Set(w)        (((XmToggleButtonGadget) (w)) -> \
  160.                            toggle.set)
  161. #define TBG_VisualSet(w)    (((XmToggleButtonGadget) (w)) -> \
  162.                    toggle.visual_set)
  163. #define TBG_ValueChangedCB(w)    (((XmToggleButtonGadget) (w)) -> \
  164.                    toggle.value_changed_CB)
  165. #define TBG_ArmCB(w)        (((XmToggleButtonGadget) (w)) -> \
  166.                    toggle.arm_CB)
  167. #define TBG_DisarmCB(w)        (((XmToggleButtonGadget) (w)) -> \
  168.                    toggle.disarm_CB)
  169. #define TBG_Armed(w)        (((XmToggleButtonGadget) (w)) -> \
  170.                    toggle.Armed)
  171.  
  172. /******************************/
  173. /* Convenience Macros         */
  174. /******************************/
  175.  
  176. #define TBG_Cache(w)                    (((XmToggleButtonGadget)(w))->\
  177.                        toggle.cache)
  178. #define TBG_ClassCachePart(w) \
  179.         (((XmToggleButtonGadgetClass)xmToggleButtonGadgetClass)->gadget_class.cache_part)
  180.  
  181.  
  182. /********    Private Function Declarations    ********/
  183. #ifdef _NO_PROTO
  184.  
  185. extern int _XmToggleBCacheCompare() ;
  186.  
  187. #else
  188.  
  189. extern int _XmToggleBCacheCompare( 
  190.                         XtPointer A,
  191.                         XtPointer B) ;
  192.  
  193. #endif /* _NO_PROTO */
  194. /********    End Private Function Declarations    ********/
  195.  
  196.  
  197. #ifdef __cplusplus
  198. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  199. #endif
  200.  
  201. #endif /* _XmToggleButtonGP_h */
  202. /* DON'T ADD ANYTHING AFTER THIS #endif */
  203.